<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 数值的扩展：

        //1. 二进制和八进制
        // ES6 提供了二进制和八进制数值的新的写法，分别用前缀0b和0o表示。
        // 整数的各种进制输出
        console.log(10);   //输出十进制数的值 10
        console.log(0b10); //输出二进制数10的值 2
        console.log(0o10); //输出八进制数10的值 8
        console.log(0x10); //输出十六进制数10的值 16

        /*
            十进制      二进制
        ===========================
            1           0001
            2           0010
            3           0011
            4           0100
            5           0101
            6           0110
            7           0111
            8           1000
            9           1001
            10          1010
        */
        // 面试题：有大小相同的7瓶水，其中有一瓶有毒，请问使用至少多少只小白鼠可以试喝出来。

        //2. Number.isFinite() 用来检查一个数值是否为有限的
        //   Number.isNaN() 用来检查一个值是否为NaN
        console.log(Number.isFinite(10)); //true 询问数值
        console.log(Math.PI); // 输出圆周率值
        console.log(Number.isFinite(Math.PI)); //true 询问Math对象的PI圆周率值是否有限
        console.log(Number.isFinite(1/0)); //false

        console.log(Number.isNaN("123")); //false
        console.log(Number.isNaN(NaN)); //true

        console.log("=".repeat(40));

        //3.  Number.parseInt() 与Number.parseFloat() 
        // ES6 将全局方法parseInt和parseFloat，移植到Number对象上面，使用不变。
        console.log(Number.parseInt("123.48KB"));
        console.log(Number.parseFloat("123.48KB"));

        //4. Math.trunc
        // 用于去除一个数的小数部分，返回整数部分。
        console.log(Math.trunc(12.95678)); // 舍去取整

        //5. Number.isInteger
        // Number.isInteger() 用来判断一个数值是否为整数
        console.log(Number.isInteger(34.8)); // false
        console.log(Number.isInteger(34)); // true
    </script>
</body>
</html>